package pwd.allen.entity;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.alibaba.excel.annotation.format.NumberFormat;
import com.alibaba.excel.metadata.CellData;
import lombok.Data;
import pwd.allen.DicItem;
import pwd.allen.converter.DicConverter;
import pwd.allen.converter.MyStringConverter;

import java.util.Date;

/**
 * @author 门那粒沙
 * @create 2021-08-15 10:29
 **/
@Data
public class MyData {
    /**
     * 这里不建议 index 和 name 同时用，要么一个对象只用index，要么一个对象只用name去匹配
     * 坑：字段名是【a+大写字母】的形式时，映射不到结果
     */
    @DicItem(value = "str数据字典", def = "默认值")
    @ExcelProperty(value = "字符串标题"
//            , converter = DicConverter.class
    )
    private String myStr;

    @DateTimeFormat("yyyy-MM-dd")
    @ExcelProperty(value = "日期标题")
    private Date myDate;

    @DicItem(value = "int数据字典", def = "10086")
    @ExcelProperty(value = "整型标题", index = 1
//            , converter = DicConverter.class
    )
    private Integer myInt;

    @NumberFormat("#.##%")
    @ExcelProperty(value = "浮点型标题")
    private Double myDouble;

    /**
     * 能读取公式和单元格类型（dataFormatString属性），最终结果通过data属性获取；日期类型的type是“NUMBER”
     */
    @ExcelProperty("日期标题CellData")
    private CellData<Date> dateCellData;

    @ExcelIgnore
    @ExcelProperty("忽略标题")
    private String ignoreStr;

    @ExcelProperty("图片")
    private byte[] images;
}
